/*
  小圈 erp 项目打包
*/
var gulp = require('gulp');
var del = require('del');
var runSequence = require('run-sequence'); // 同步执行代码
var assetRev = require('gulp-asset-rev'); // 配置版本号
// 操作文件模块
var fs = require('fs');

// js
gulp.task('app_scripts', function(){
    return gulp.src(['file/js/**/*.js'])
            .pipe(assetRev())
            .pipe(gulp.dest("dist/js"));
});
// css
gulp.task('app_styles', function(){
    return gulp.src(['file/css/**/*.css'])
            .pipe(assetRev())
            .pipe(gulp.dest("dist/css"));
});
// html 配置版本号
gulp.task('app_rev', function(){
    return gulp.src(['file/src/**/*.html'])
        .pipe(assetRev())
        .pipe(gulp.dest('dist/src'));
});

// 打包之前先清空 dist 文件夹
gulp.task('clean_dist', function (cb) {
    handleFile();
    return del(['dist/**/*'], cb);
});
// 打包之后清空 file 文件夹
gulp.task('clean_file', ['app_rev'], function (cb) {
    del(['file/**/*'], cb);
    console.log('恭喜，操作完成！！！');
});

// gulp.task("default", ['clean_file']);
gulp.task('default', function(cb) {
    runSequence('clean_dist', ['app_styles', 'app_scripts'], 'app_rev', 'clean_file', cb);
});










// 定义个需要执行命令的 html 文件
var folder=[];
// 定义个盛放文件的数组
var fileList=[];

// 遍历指定文件夹中所有文件的方法
function walks(path){
  var dirList = fs.readdirSync(path);
  dirList.forEach(function(item){
    if(fs.statSync(path + '/' + item).isFile()){
      fileList.push(path + '/' + item);
    }
  });
}

// 处理文件
function handleFile(){
  fileList=[];
  walks('file/js/');
  for(var i = 0; i < fileList.length; i++){
    var t1=fileList[i].lastIndexOf('/');
    var catalog = fileList[i].substring(0, t1+1);
    // 获取当前时间戳
    var timestamp = new Date().getTime();
    var sign = 'var www_version = "';
    // 处理 seajs_config 文件
    if(fileList[i].indexOf('seajs_config.js') !== -1){
      var data = fs.readFileSync(fileList[i],'utf-8');
      var startIndex = data.indexOf(sign);
      var endIndex = data.indexOf('";');
      var text = data.substring(startIndex, endIndex);
      var dataText = data.replace(text, sign + timestamp);
      fs.writeFileSync(fileList[i], dataText, 'utf-8');
      console.log('seajs_config.js 修改完成！');
    }
    // 处理 abp 文件
    if(fileList[i].indexOf('abp.js') !== -1){
      var data = fs.readFileSync(fileList[i], 'utf-8');
      var dataText = data.replace('http://yc.kuguanwang.com', '');
      fs.writeFileSync(fileList[i], dataText, 'utf-8');
      console.log('abp.js 修改完成！');
    }
  }
}